<template>
  <div>
    async
    <!-- {{ tableData[0].photo }} -->
  </div>
</template>

<script setup>
 import { getType, getTypeDatail } from '../../api/index'
 import { ref } from 'vue'
 /*
  *
  *  async 和 await 
  *  async 是函数的一个修饰符  => 用async修饰符修饰的函数，返回的是一个promise的结果
  *  await => 异步等待 async wait  => 只能在async修饰的函数中使用，
  *  
 */

 const tableData = ref([]);

 function fn1(){
    // console.log(1111);
    return 111
 }

 async function fn2(){
    return 222
 }

 async function fn3(){
    return 333
 }

 async function fn4(){
    return 444
 }

// 第一个网络请求 => 发起一个网络请求，要用这个网络请求的结果，作为这个参数，去进行第二次的网络请求
// 这两个请求有先后顺序，必须要第一个得到网络请求的结果，才发起第二个网络请求
/* getType('/type','POST',{
    id:1
})
.then(res=>{
    if(res?.code==200){
        getTypeDatail('/typeAll','POST',{
            id:res.data[0].id
        }).then(datail=>{
            console.log(datail,'datail');
            // tableData.value = datail.data
        }).then
    }
}) */


// async function getTwoInfo(){
//     const res1 = await getType('/type','POST',{id:1});
//     const res2 = await getTypeDatail('/typeAll','POST',{ id:res1.data[0].id })
//     return res2
// }

// getTwoInfo();



//  console.log(fn1(),'fn1');  // undefined

//  console.log(fn2(),'fn2');  //  得到的是一个primose结果

// async function fn5(){
//     const result1 = await fn2();
//     fn3();
//     fn4();
// }

// fn5();


   /*
    * 一、 模板字符串  ``
    * 二、 可选链  ?.
    * 三、 空值合并 ??
   */

     /* const str = '单引号';
     const str2 = "双引号";
     const str3 = `模板字符串${str?'1':'0'}`;  
     const str4 = "模板字符串"+str

     console.log(str3);

     console.log(str4);
 */



     const obj = {
        age:'',
        person : {
            name:'张三'
        }
     }

    //  const name = obj.name ?? ;
    //  console.log(name);

   const str  = obj.age || 19;
   console.log(str); 

   const newStr = obj.age ?? 19;

   console.log(newStr);


    /*  console.log(obj.age);
     console.log(obj.name);  // 数据类型
     console.log(obj.person);
     console.log(obj.person.name);
     obj.name && obj.name.age
     console.log(obj.name?.age);
     console.log(111111111); */


     // 短路  js 
    /*  const num = undefined && 1  //  两个结果都是真，才能得到一个真的结果
     console.log(num,'num'); */



</script>

<style>

</style>